1. Field of the Invention
This invention relates to semiconductor chips, and more particularly, to efficiently scheduling memory access requests.
2. Description of the Relevant Art
A semiconductor chip may include multiple functional blocks or units, each capable of accessing a shared memory. In some embodiments, the multiple functional units are individual dies on an integrated circuit (IC), such as a system-on-a-chip (SOC). In other embodiments, the multiple functional units are individual dies within a package, such as a multi-chip module (MCM). In yet other embodiments, the multiple functional units are individual dies or chips on a printed circuit board. A memory controller may control access to the shared memory.
The multiple functional units on the chip are sources for memory access requests sent to the memory controller. Additionally, one or more functional units may include multiple sources for memory access requests to send to the memory controller. For example, a video subsystem in a computing system may include multiple sources for video data. The design of a smartphone or computer tablet may include user interface layers, cameras, and video sources such as media players. Each of these sources may utilize video data stored in memory. A corresponding display controller may include multiple internal pixel-processing pipelines for these sources.
Each request sent from one of the multiple sources includes both overhead processing and information retrieval processing. A large number of requests from separate sources of the multiple sources on the chip may create a bottleneck in the memory subsystem. The repeated overhead processing may reduce the subsystem performance.
A burst mode or bursting feature may be used to reduce the number of individual requests from separate sources. The burst mode allows a given source of the multiple sources to gain control of a bus or buses within a high-level interconnect, and send a programmable number of requests to the memory controller without being interrupted by another source. The given source may repeatedly send the requests without waiting for an acknowledgment from another device, such as the memory controller. An arbitration process may be used to select the given source. Arbitration may not occur again until the given source finished sending its programmable number of requests.
The bursting feature may prevent particular areas of the chip from entering a low-power mode. For example, the refresh rate of a display screen may be 60 frames-per-second, so a user reading search results during browsing may cause long pauses to updates on the display screen. Many areas of a corresponding chip may be inactive while the display screen is idle. However, the memory subsystem may not be able to enter a low-power mode as one or more display pipelines continue to access the shared memory. The shared memory may be off-die synchronous dynamic random access memory (SDRAM) used to store frame data in frame buffers. The accesses of the SDRAM consume an appreciable amount of power in addition to preventing the memory subsystem from entering a low-power mode.
In view of the above, methods and mechanisms for efficiently scheduling memory access requests are desired.